package com.lzy.example.utils;

import lombok.Data;

@Data
public class ResultBean {
    private static final long serialVersionUID = 1L;

    //结果的状态码：0表示返回的是正确（正常）的信息, 500表示返回的是错误信息
    private int code;
    //结果的数据
    private Object data;
    //数据条数
    private int count;
    //具体的信息
    private String msg;

    //======================返回成功========================
    /**
     * 返回成功的结果1
     * @return 状态码：200——成功
     */
    public static ResultBean success() {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(200);
        resultBean.setData(null);
//		resultBean.setCount(0);
        resultBean.setMsg("success");
        return resultBean;
    }

    /**
     * 返回成功的结果2（带有数据）
     * @param data	具体的数据
     * @return 状态码：200——成功
     */
    public static ResultBean success(Object data) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(200);
        resultBean.setData(data);
        resultBean.setMsg("success");
        return resultBean;
    }

    /**
     * 返回成功的结果3（带有自定义信息）
     * @param message	具体的信息
     * @return 状态码：200——成功
     */
    public static ResultBean success(String message) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(200);
        resultBean.setData(null);
        resultBean.setMsg(message);
        return resultBean;
    }

    /**
     * 返回成功的结果4（带有数据、自定义信息）
     * @param data		具体的数据
     * @param message	具体的信息
     * @return 状态码：200——成功
     */
    public static ResultBean success(Object data, String message) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(200);
        resultBean.setData(data);
        resultBean.setMsg(message);
        return resultBean;
    }

    /**
     * 返回成功的结果5（带有数据、数据条数）
     * @param data	   具体数据
     * @param count	   数据条数
     * @return 状态码：0——成功
     */
    public static ResultBean success(Object data, int count) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(0);
        resultBean.setData(data);
        resultBean.setCount(count);
        return resultBean;
    }


    /**
     * 返回成功的结果6（带有数据、数据条数、自定义信息）
     * @param data		具体的数据
     * @param count		数据的条数
     * @param msg	具体的信息
     * @return 状态码：0——成功
     */
    public static ResultBean success(Object data,int count, String message) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(0);
        resultBean.setData(data);
        resultBean.setCount(count);
        resultBean.setMsg(message);
        return resultBean;
    }

    /**
     * 返回成功——自定义状态码（0、200——300之间）
     * @param code	自定义状态码
     * @return
     */
    public static ResultBean successCode(int code) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(code);
        return resultBean;
    }


    /**
     * 返回成功——自定义状态码、消息（0、200——300之间）
     * @param code		自定义状态码
     * @param message	消息
     * @return
     */
    public static ResultBean successCode(int code, String message) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(code);
        resultBean.setMsg(message);
        return resultBean;
    }


    /**
     * 返回成功——自定义状态码、消息（0、200——300之间）
     * @param code	自定义状态码
     * @param data	数据
     * @return
     */
    public static ResultBean successCode(int code, Object data) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(code);
        resultBean.setData(data);;
        return resultBean;
    }

    //======================返回错误========================
    /**
     * 返回错误的结果
     * @return
     */
    public static ResultBean error() {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(500);
        resultBean.setData(null);
        resultBean.setMsg("error");
        return resultBean;
    }

    /**
     * 返回错误的结果2（带有自定义信息）
     * @param message
     * @return
     */
    public static ResultBean error(String message) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(500);
        resultBean.setData(null);
        resultBean.setMsg(message);
        return resultBean;
    }

    public static ResultBean errorCode(int code) {
        ResultBean resultBean = new ResultBean();
        resultBean.setCode(code);
        return resultBean;
    }
}
